Psaní textu do grafické plochy

python.edumach.cz

Příkaz canvas.create_text(100, 70, text='Ahoj') zapíše text “Ahoj” na souřadnice [100, 70]. Parametry tohoto příkazu jsou souřadnice středu zadaného textu. Text je psán tak, že svisle i vodorovně jsou souřadnice přesně vycentrovány ve středu psaného textu. Pomocí parametru text zadáme právě ten text, který chceme napsat.

import tkinter
canvas = tkinter.Canvas()
canvas.pack()

canvas.create_text(100, 70, text='Ahoj')

Velikost a písmo textu

V příkazu můžeme také pomocí parametru font určit typ, velikost a řez písma. Například font='Arial 70 bold'. Tímto způsobem můžeme zadávat pouze jednoslovné názvy písem. Víceslovný název se zadává složitějším způsobem. Nám postačí základní varianty, jako

canvas.create_text(100, 70, text='Ahoj')
canvas.create_text(100, 100, text='Světe', font='Arial 40 bold')

Program vypíše následující texty:

Barva textu

Barvu výplně písma určíme parametrem fill, stejně jako v příkazech, které již známe:

canvas.create_text(100, 70, text='Ahoj', fill='green')
canvas.create_text(100, 100, text='Světe', font='Arial 40 bold', fill='orange')

Snadno jde například vytvořit stínované písmo:

canvas.create_text(122, 72, text='Ahoj Světe!', font='Arial 40 bold', fill='gray')
canvas.create_text(120, 70, text='Ahoj Světe!', font='Arial 40 bold', fill='gold')

Rotace textu

Písmo můžeme také otáčet pomocí parametru angle:

canvas.create_text(180, 100, text='Světe', font='Arial 70 bold', fill='orange', angle=90)
canvas.create_text(130, 90, text='Ahoj', fill='green', font='Arial 40 bold italic')

Nápis “Světe” jsme otočili o 90 stupňů. Nejprve se nakreslí tento nápis a poté se zeleně napíše “Ahoj”. Když upravíte úhel, text se otočí kolem zadané souřadnice, což je přesný střed textu (fiktivně opsaný obdélník textu). Rotace určuje úhel proti směru hodinových ručiček. Úhel 180 stupňů obrátí text vzhůru nohama. Pokud chceme text otočit ve směru hodinových ručiček, můžeme použít záporný úhel.

Výrazy v příkazu create_text

Příkaz create_text umí vypsat i čísla nebo hodnoty výrazů. Zjisti, co vypíšou následující příkazy:

canvas.create_text(100, 100, text=23+7)
canvas.create_text(100, 120, text="23+7")

💾 Úkoly

Nakreslete tyto značky. Velikosti si zvolte podle vlastního uvážení, nejvíce však 200×200200 \times 200 bodů. Snažte se co nejvíce přiblížit předloze: